Arduino এবং অন্যান্য মাইক্রোকন্ট্রোলারের জন্য Sleep Mode এবং Power Saving Techniques ব্যবহার করা হয় বিদ্যুৎ সাশ্রয়ী করার জন্য। ইলেকট্রনিক ডিভাইসের কার্যক্ষমতা ধরে রেখে তাদের পাওয়ার খরচ কমানোর জন্য এই প্রযুক্তিগুলো খুবই কার্যকর।
Sleep Mode হলো একটি অবস্থা যেখানে মাইক্রোকন্ট্রোলার তার কার্যক্ষমতা বন্ধ করে বা কমিয়ে আনে, কিন্তু ডিভাইসটি সক্রিয় থাকে এবং নির্দিষ্ট ইন্টারাপ্ট বা ইভেন্টের সময় পুনরায় জেগে ওঠে। এটি ব্যাটারি চালিত ডিভাইসের জন্য বিশেষভাবে উপকারী।
Arduino তে Sleep Mode ব্যবহার করতে avr/sleep.h
লাইব্রেরি অন্তর্ভুক্ত করতে হয়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে Arduino কে Sleep Mode-এ রাখা এবং ইন্টারাপ্টের মাধ্যমে জাগিয়ে তোলা হয়েছে।
#include <avr/sleep.h> // Sleep Mode এর জন্য লাইব্রেরি
#include <avr/interrupt.h> // ইন্টারাপ্ট হ্যান্ডলিং লাইব্রেরি
void setup() {
pinMode(2, INPUT_PULLUP); // পিন 2 এ বোতাম ইনপুট হিসেবে
pinMode(13, OUTPUT); // LED পিন 13 আউটপুট হিসেবে
attachInterrupt(digitalPinToInterrupt(2), wakeUp, FALLING); // ইন্টারাপ্ট সেট করা
}
void loop() {
digitalWrite(13, LOW); // LED বন্ধ করা
delay(1000); // অপেক্ষা
// Sleep Mode-এ প্রবেশ
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // পাওয়ার ডাউন মোড
sleep_enable(); // Sleep সক্রিয় করা
sleep_mode(); // Sleep Mode-এ প্রবেশ
// কোড এখানে ফিরবে যখন ইন্টারাপ্টের মাধ্যমে ডিভাইস জেগে উঠবে
sleep_disable(); // Sleep নিষ্ক্রিয় করা
digitalWrite(13, HIGH); // LED অন করা
delay(1000); // অপেক্ষা
}
void wakeUp() {
// ইন্টারাপ্ট ফাংশন: এটি ডিভাইসকে জাগিয়ে তুলবে
}
Power Saving Techniques ব্যবহার করে Arduino-র পাওয়ার খরচ উল্লেখযোগ্যভাবে কমানো যায়। নিচে কিছু গুরুত্বপূর্ণ কৌশল নিয়ে আলোচনা করা হলো।
ADC, টাইমার এবং অন্যান্য পেরিফেরাল বন্ধ করলে বিদ্যুৎ সাশ্রয় হয়।
উদাহরণ:
ADCSRA &= ~(1 << ADEN); // ADC বন্ধ করা
Arduino তে বিভিন্ন পাওয়ার মোড রয়েছে:
Watchdog Timer ব্যবহার করে নির্দিষ্ট সময় পরে Arduino কে স্বয়ংক্রিয়ভাবে জাগিয়ে তোলা যায়।
উদাহরণ:
#include <avr/wdt.h>
void setup() {
// Watchdog Timer সক্রিয় করা
wdt_enable(WDTO_2S); // 2 সেকেন্ড পরে পুনরায় চালু হবে
}
void loop() {
// Sleep Mode-এ প্রবেশ
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_mode();
// কোড এখান থেকে আবার শুরু হবে যখন Watchdog Timer ডিভাইসকে জাগাবে
sleep_disable();
}
LowPower.h
লাইব্রেরি ব্যবহার করলে সহজে পাওয়ার সাশ্রয়ী কোড লেখা যায়।উদাহরণ:
#include <LowPower.h>
void setup() {
pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), wakeUp, FALLING);
}
void loop() {
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
void wakeUp() {
// ইন্টারাপ্ট ফাংশন: কিছু করতে হবে না, শুধু জাগিয়ে তুলবে
}
Arduino-তে Sleep Mode এবং Power Saving Techniques ব্যবহার করলে ডিভাইসের পাওয়ার খরচ উল্লেখযোগ্যভাবে কমানো যায়, যা ব্যাটারি লাইফ বাড়াতে সাহায্য করে। এসব কৌশল IoT ডিভাইস এবং ব্যাটারি চালিত প্রকল্পের জন্য বিশেষভাবে উপযোগী।
common.read_more